
//接口模块
import $ from 'jquery';

class Interface{    //因为这个类不需要做一些实例的说明，就不用写constructor函数了
    /**
     * 先获取遗漏数据，然后进行前端显示，需要promise
     * @param  {string} issue {当前期号}
     * @return promise
     */
    getOmit(issue){ //向后获取数据，需要异步操作，传统的方法是使用回调getOmit(issue，callback){},我们这里使用Promise来实现
        let self=this;
        return new Promise((resolve,reject)=>{  //使用Promise对象，方便异步操作。
            $.ajax({
                url:'/get/omit',
                data:{
                    issue:issue //这个数据选项是前端和后端约定的数据格式
                },
                dataType:'json',    //数据类型是JSON
                success:function(res){
                    self.setOmit(res.data); //把当前数据存到当前对象，方便其他地方使用
                    resolve.call(self,res)  //把传回来的数据都传给resolve的下一步
                },
                error:function(err){
                    reject.call(err);
                }
            })
        });
    }
    /**
     * [getOpenCode 获取开奖号码]
     * @param  {string} issue [期号]
     * @return {[type]}       [description]
     */
    getOpenCode(issue){
        let self=this;  //箭头函数的this指向是定义时的指向
        return new Promise((resolve,reject)=>{   //使用箭头函数
            $.ajax({
                url:'/get/opencode',
                data:{
                    issue:issue
                },
                dataType:'json',
                success:function(res){
                    self.setOpenCode(res.data); //在方法内部调用对象的其它方法传递数据，避免回调
                    resolve.call(self,res);
                },
                error:function(err){
                    reject.call(err);
                }
            })
        });
    }

    /**
     * [getState 获取当前状态]
     * @param  {string} issue [当前期号]
     * @return {[type]}       [description]
     */
    //页面中每个状态和数据都当前的期号密切相关，上面两个接口得到的遗漏数据和当前开奖号码，
    //由于其每十分钟就要更新一次，所以每次接口都要重新保存
    getState(issue){
        let self=this;
        return new Promise((resolve,reject)=>{
            $.ajax({
                url:'/get/state',
                data:{
                    issue:issue
                },
                dataType:'json',
                success:function(res){  //这里就不做任何保存了，直接通过下一步进行处理，因为这里还涉及到期号的自动更新，不是单纯的数据保存，交给下一步处理
                    resolve.call(self,res);
                },
                error:function(err){
                    reject.call(err);
                }
            })
        });
    }
}

export default Interface
